﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace Atentado_ao_Riocentro
{
    static public class GerenciadorDeCena
    {
        //Criamos uma cena e definimos ela nula.
        static public CenaBase cena = null;

        //Metodo de troca de cenas.
        static public void ChangeScene(Game game, EstadoDoJogo proximacena)
        {
            //Limpamos os componentes de jogo.
            game.Components.Clear();

            //Dependendo da próxima cena.
            switch (proximacena)
            {
                // No caso do Menu
                case EstadoDoJogo.Menu:
                    GerenciadorDeCena.cena = new Menu(game);
                    game.Components.Add(GerenciadorDeCena.cena);
                    break;
                //No caso de abertura.
                case EstadoDoJogo.Abertura:
                    //Definimos a cena como abertura.
                    GerenciadorDeCena.cena = new Abertura(game);
                    game.Components.Add(GerenciadorDeCena.cena);
                    break;
                //No caso de instrucoes.
                case EstadoDoJogo.Instrucoes:
                    //Definimos a cena como instruções.
                    GerenciadorDeCena.cena = new Instrucoes(game);
                    game.Components.Add(GerenciadorDeCena.cena);
                    break;
                // No caso de abertura.
                case EstadoDoJogo.Creditos:
                    //Definimos a cena como creditos.
                    GerenciadorDeCena.cena = new Creditos(game);
                    game.Components.Add(GerenciadorDeCena.cena);
                    break;

                //No caso de fase 1.
                case EstadoDoJogo.Fase1:
                     //Definimos a cena como Fase1.
                     GerenciadorDeCena.cena = new Fase1(game);
                     game.Components.Add(GerenciadorDeCena.cena);
                     break;
                 //No caso de fase 2.
                 case EstadoDoJogo.Fase2:
                     //Definimos a cena como Fase2.
                     GerenciadorDeCena.cena = new Fase2(game);
                     game.Components.Add(GerenciadorDeCena.cena);
                     break;
                 //No caso de fase 3.
                 case EstadoDoJogo.Fase3:
                     //Definimos a cena como Fase3.
                    GerenciadorDeCena.cena = new Fase3(game);
                     game.Components.Add(GerenciadorDeCena.cena);
                     break;
                 //No caso de perdeu.
                 case EstadoDoJogo.Perdeu:
                     //Definimos a cena como perdeu.
                    GerenciadorDeCena.cena = new Perdeu(game);
                     game.Components.Add(GerenciadorDeCena.cena);
                     break;
                 //No caso de venceu.
                 case EstadoDoJogo.Venceu:
                     //Definimos a cena como venceu.
                    GerenciadorDeCena.cena = new Venceu(game);
                     game.Components.Add(GerenciadorDeCena.cena);
                     break;



             }
            }

        }
    }

